Pub手册4.4.3.1,Basic Gate Training(基本门控训练)是用来校准 DQS信号的门控位置,以确保读操作的正确性。DQS信号是用来同步数据传输的时钟信号,而这个门控信号需要精确地与数据同步,以避免数据错误。
训练目标:
基本门控训练的目标是找出 DQS门控信号 的最佳时序位置,使得内存控制器能够在正确的时刻捕捉到数据。
训练过程概述:
- 训练从最小延迟的门控位置开始,即最早的位置。
- 首先找到有效的左边位置,然后找到有效的右边位置。
- 最终的门控位置是左边位置和右边位置的中位数,这是理论上最接近正确时序的位置。
训练的步骤:
- 从最小延迟位置开始:
- 训练从最小的延迟开始,也就是门控信号尽可能早地开启。这个位置是最“左边”的门控位置。
- 内存控制器会进行读操作,检查这个位置是否能成功地读取数据。如果不能读取,则意味着门控信号的时序还需要调整。
- 找到左边有效的门控位置:
- 从最小延迟位置开始,逐渐向右(增加延迟)调整,直到能成功读取数据为止。
- 一旦找到第一个有效位置,即读取成功的位置,它就成为 左边的有效门控位置。
- 然后,系统继续进行调整,在找到的有效位置和失败位置之间使用 二分查找 来更精确地定位。
- 避免跳过不稳定区域:
- 一旦找到左边的有效位置,系统会稍微“跳过”不稳定的区域(可能是由于抖动或不精确的时序),然后继续向右移动门控信号。这个“跳过”是为了避免一些由于时序不稳定导致的读取错误。
- 系统通过 1/4 个 DDR 时钟周期的步进来调整门控位置。
- 找到右边有效的门控位置:
- 接着,训练系统会找到 右边的有效门控位置。这个位置是信号稍微延迟的地方,直到读操作失败。
- 和左边的位置一样,右边的位置通过调整来确定,使用二分查找来加速过程。
- 最终结果:
- 经过上面的步骤,系统最终确定了 最小延迟位置(左边位置) 和 最大延迟位置(右边位置),这两个位置之间的中点就是理想的门控位置。
训练参数:
- DTCR.DTRPTN:控制每个门控位置的评估读操作次数。为了避免由于读取数据抖动产生误差,系统在评估时会进行多次读取。
- DTCR.DTCMPD:控制是否在评估门控位置时进行数据比较,确保数据是否正确。
- DXnGTR.DGSL 和 DXnLCDLR2.DQSGD:这些寄存器用于编程门控延迟,以精确控制DQS门控信号的延迟。
特别注意:
- 门控延迟的范围:
- 在正常情况下,最终的门控位置应该离理想位置不超过1个延迟线(delay-line taps),最多2个延迟线。
- 如果路径的延迟很大,或者使用了扩展的门控(比如通过 DSGCR.DQSGX 控制的扩展门控),门控可能无法在对称的位置校准。
- Jitter和错误读数的避免:
- 在训练过程中,读取DQS信号时可能会遇到抖动(jitter),这会导致每次读取结果不一致。为了避免这种情况,系统会通过多次读取来确保该位置的稳定性。
- 训练的重置:
- 每次触发基本门控训练时,所有当前的门控训练结果都会被清除,即重新从头开始训练。
- 训练时只会对启用的 rank 和 lane 进行训练,未启用的部分会被跳过。
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/11/19/DDR/Data Training-Basic Gate training/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/11/19/DDR/Data Training-Basic Gate training/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!